package com.example.demo.suanfa;

import org.junit.Test;

public class Test20220208 {

    /**
     * 苹果
     * 6个苹果一个袋子--6号袋子
     * 8个苹果一个袋子--8号袋子
     *
     * 装不满 返回 -1  N个苹果要求使用袋子最少
     *
     */
    // 傻白甜解法
    @Test
    public void test01(){
        int result = -1;
        int apple = (int) (Math.random() * 1000);
        int bag8 = (apple >> 3);

        int rest = apple - (apple << 3) * 8;

        while (bag8>=0){
            if(rest / 6 == 0){

            }else {
                bag8--;
                rest += 8;
            }
        }
        System.out.println(result);
    }

    /**
     * 连续正数和
     * 可以表示若干数量》1连续正整数的和
     * 5=2+3 对
     * 12=3+4+5 对
     * 2=1+1 否
     */
        public void test02(){

        }


    /**
     * 给定一个正整数N，表示有N份青草统一堆放在仓库里
     * 有一头牛和一只羊，牛先吃，羊后吃，她两轮流吃草
     * 不管是牛还是羊，每一轮能吃的草量必须是：1，4，16，64 4的某次方
     * 谁先把草吃完，谁获胜，假设牛和羊都聪明
     * 给定一个数N
     * 返回 谁会赢？
     */



    // 如有有难的公式，大多不是当时写的，可以先暴力破解。

    ///////////////////////////////////////
    //贪心//

    /**
     * 安排会议
     * 开始 结束时间
     * 不能同时进行
     * 安排最多的会议
     */


    /**
     * cmu入学申请考试
     * 给定一个长度为N的字符串s，由 a b 和 空隙由 ？填充 三种字符
     * 问号只能替换成 a 或者 b
     * 要求 连续子子串最短
     * 返回最短子串长度
     */


    /**
     * 韵律：aabb  abab  abba  aaaa
     * 比如：1122 6666
     * 一个arr可以 生成 很多的子序列，如果某个子序列一直以一个韵律方式连接起来，我们称之为这样的子序列是有效
     * 比如：arr={1，1，15，1，34，1，2，67，3，3，2，4，15，3，17，4，3，7，52，7，81，9，9}
     * 比如arr子序列为：{1，1，1，1，2，3，3，2，4，3，4，3，7，7，9，9}
     * 返回有效子序列最长的长度
     */

}

